/**
 * Created by apple on 2017/9/30.
 */
var express = require('express');
var router = express.Router();

var RecommenderRouter = module.exports;
var UserToken = require('../db/user_tokens.js');
var RecommenderDao = require('../dao/recommender');

/**
 * 查询下线 agent_lvl，-2：间接推荐人，-1：推荐人， 1-6：代理级别
 */
RecommenderRouter.getSubordinate = function (req, res) {
    var par = paramAll(req);
    if(!par.app_key) return res.json(new ERR('app_key不为空', 400));
    if(!par.agent_lvl) return res.json(new ERR('agent_lvl 不能为空', 400));

    UserToken.checkLogin(par.token, function (err, userInfo) {
        if (err) {
            res.json(new ERR(err, 400));
            return;
        }
        if(!userInfo) return res.json(new ERR('请先登录', 403));

        if(userInfo.isAdmin && !par.account) return res.json(new ERR('account不为空', 400));
        if(!userInfo.isAdmin) par.account = userInfo.account;
        RecommenderDao.getSubordinate(par, function (err, result) {
            if (err) {
                res.json(new ERR(err, 400));
                return;
            }
            res.json(new PKG(result));
        });

    });

}
router.post('/getSubordinate', RecommenderRouter.getSubordinate);

/**
 * 查询1级下线的具体信息（包括省代）isFindByAccount 如果有，只查询时间、等级、是否vip
 */
RecommenderRouter.getFirstSubInfo = function (req, res) {
    var par = paramAll(req);
    if(!par.app_sid) return res.json(new ERR('app_sid不为空', 400));

    UserToken.checkLogin(par.token, function (err, userInfo) {

        if (err) return res.json(new ERR(err, 400));
        if(!userInfo) return res.json(new ERR('请先登录', 403));
        if(userInfo.isAdmin && !par.account) return res.json(new ERR('account不为空', 400));
        if(!userInfo.isAdmin && !par.account) par.account = userInfo.account;
        par.uid = userInfo.uid;

        RecommenderDao.getFirstSubInfo(par, function (err, result) {
            if (err) return res.json(new ERR(err, 400));
            res.json(new PKG(result));
        });
    });

}
router.post('/getFirstSubInfo', RecommenderRouter.getFirstSubInfo);

/**
 * 查询佣金比例
 */
RecommenderRouter.getCommissionRate = function (req, res) {
    var par = paramAll(req);
    if(!par.app_key) return res.json(new ERR('app_key不为空', 400));

    UserToken.checkLogin(par.token, function (err,errCode, userInfo) {
        if (err) {
            res.json(new ERR(err, errCode));
            return;
        }

        if(userInfo.isAdmin && !par.account) return res.json(new ERR('account不为空', 400));
        if(!userInfo.isAdmin) par.account = userInfo.account;
        RecommenderDao.getSubordinate(par, function (err, result) {
            if (err) {
                res.json(new ERR(err, 400));
                return;
            }
            res.json(new PKG(result));
        });

    });

}
router.post('/getCommissionRate', RecommenderRouter.getCommissionRate);


/**
 * 查推荐人信息
 */
RecommenderRouter.findRecommenderInfo = function (req, res) {
    var par = paramAll(req);
    if(!par.app_sid) return res.json(new ERR('app_sid不为空', 400));
    if(!par.recommendCode) return res.json(new ERR('推荐人标识不为空', 400));
    par.recommendUid = codeToUid(par.recommendCode);

    RecommenderDao.findRecommenderInfo(par, function (err, result) {
        if (err) {
            res.json(new ERR(err, 400));
            return;
        }
        res.json(new PKG(result));
    });
}
router.post('/findRecommenderInfo', RecommenderRouter.findRecommenderInfo);


/**
 * 赋予升级权限
 */
RecommenderRouter.giveUpVip = function (req, res) {
    var par = paramAll(req);
    if(!par.person_uid) return res.json(new ERR('用户标识不为空', 400));
    if(!par.app_sid) return res.json(new ERR('产品标识不为空', 400));

    UserToken.checkLogin(par.token, function (err,userInfo) {
        if (err) {
            res.json(new ERR(err, 400));
            return;
        }
        if(!userInfo) return res.json(new ERR('请先登录', 403));
        par.recommender = userInfo.account;
        RecommenderDao.giveUpVip(par, function (err, result) {
            if (err) {
                res.json(new ERR(err, 400));
                return;
            }
            res.json(new PKG(result));
        });

    });
}
router.post('/give_up_vip', RecommenderRouter.giveUpVip);



module.exports = router;
